package com.lagou.worktest;

import org.junit.Test;

import java.sql.*;

public class WorkTowTest {

    @Test
    public void JDBCTest(){
        /**
         * 要求：
         * 1.编写一个测试类，在该测试类中使用PrepareStatement 根据name和gender进行数据查询，并将结果打印在控制台。
         * 2.要求编写一个编写一个db.properties , 数据库的数据存放在配置文件中
         * 3.要求自己编写一个工具类DBUtils , 该类中提供静态获取Connection连接的方法.
         */
        // 1.获取连接
        Connection connection = DBUtils.getConnection();
        PreparedStatement ps = null;
        ResultSet resultSet = null;
                // 2.根据name和gender查询员工信息
        String sql = "select id, NAME, gender, join_date from employee where NAME IN (?,?) AND gender = ?";
        try {
             ps = connection.prepareStatement(sql);

            // 3.设置查询条件
            ps.setString(1,"张三");
            ps.setString(2,"李四");
            ps.setString(3,"男");
            resultSet = ps.executeQuery();

            // 4.处理查询结果集
            while (resultSet.next()){
                int id = resultSet.getInt("id");
                String name = resultSet.getString("NAME");
                String gender = resultSet.getString("gender");
                Date date = resultSet.getDate("join_date");

                // 5.打印查询结果
                System.out.println("--------------------------------------------------");
                System.out.println("id"+"   " +"name"+ "   "+"gender"+ "   "+"date");
                System.out.println(id+"    " +name+ "   "+ gender + "       "+ date);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            // 6.释放资源
            DBUtils.close(connection, ps, resultSet);
        }
    }
}
